#include "Input.h"


/*
===============================================================================
 Name        : Input.cpp
 Author      : Bram en Paul
 Version     : 0.1
 Description : OOPatronen
===============================================================================
*/

//Statisch voorbeeldobject.
Node* Input::staticNodeHigh = new Input("INPUT_HIGH", 1);
Node* Input::staticNodeLow = new Input("INPUT_LOW", 0);


/**
 * Constructor
 * 
 * Een input krijgt mee of hij hoog of laag is.
 */
Input::Input(string ID, char value) : Node(ID)
{
	outputValue = value;
}


/**
 * Constructor (alternative)
 */
Input::Input(char value) : Node()
{
	outputValue = value;
}


/**
 * Operation van Input
 */
void Input::operation()
{
	sendOperationResult();
}


/**
 * Input wil 1 input. Een fake input die alleen bedoelt is om te bepalen wanneer het circuit 'uigevoerd' mag worden.
 */
void Input::checkInputQuantity()
{
	if (inputs.size() == 1) {
		operation();
	}
}


/**
 * Is it an input node? 
 * Yes it bloody is!
 */
char Input::isInput()
{
	return 1;
}


/**
 * Functie die een clone van de uitvoerende instantie uitvoert.
 */
Node* Input::clone()
{
	return new Input(outputValue);
}

/**
 * Destructor
 */
Input::~Input()
{
	
}
